var mongoose = require('mongoose');
var Cate = require('../models/cate.model')// 引数据模型

// 新增
exports.create = function(req,res,next){
    var cate = new Cate(req.body); // 从req.body里获取参数对象，比如{name:'vane',gender:'男',city:'杭州'....}

    cate.save()
    .then(data=>{
        res.json(data)
    })
    
}

//修改
exports.update = function(req,res,next){
    var id = req.params.id; // req.param('id')
    // 现在操作的都是mongoose而不是mongodb
    Cate.findByIdAndUpdate(id,{$set: req.body}, {new:false} )
    .then(data=>{
        res.json({msg:'数据修改成功',status:200}); // 如果你要返回数据，这个data返回的是你之前修改的那个数据内容
    })
   
}

exports.removes = function(req,res,next){
    var ids = req.params.ids;
    ids=ids.split(',');
    console.log(ids);
    Cate.remove({_id:{$in:ids}}).then(data=>{
        res.json(data);
    })
} 
//删除
exports.remove = function(req,res,next){
    var id = req.params.id; // req.param('id')
    // 现在操作的都是mongoose而不是mongodb
    var ids=[];
    Cate.findOne({_id:id},function(err,doc){
        if(doc){
            ids=[doc._id];//当前的id
            doc.getChildren().then(function(docs){
                for(var i=0;i<docs.length;i++){
                    ids.push(docs[i]._id);//将孩子的id放进数组
                }
                Cate.remove({_id:{$in:ids}})
                .then(data=>{
                    res.json({"msg":"数据删除成功",status:200});
                })
            })
        }
    })
} 

function reverserTree(data,pid){//数据模型 父元素id
    var result=[];
    var temp;
    var data=JSON.parse(JSON.stringify(data));//将数据模型的data进行了转化
    for(var i in data){
        if(data[i].parentId==pid){
            result.push(data[i]);
            temp=reverserTree(data,data[i]._id);
            if(temp.length>0){
                data[i].children=temp;
            }
        }
    }
    return result;
}
exports.list = function(req,res,next){
    var type=req.params.type;
    Cate.find({type:type},function(err,data){
        var rpTree=reverserTree(data,null);
        res.json(rpTree);
        //console.log(rpTree);
    })
}